package com.wflow.workflow.service;

import java.util.Map;

/**
 * 业务数据存储层服务
 * @author : willian fu
 * @date : 2023/7/28
 */
public interface BusinessDataStorageService {

    /**
     * 通过流程实例获取所有的表单数据
     * @param instanceId 实例ID
     * @return 表单map数据
     */
    Map<String, Object> getInstanceFormData(String instanceId);

    /**
     * 通过流程实例获取指定表单字段值
     * @param instanceId 实例ID
     * @return 表单map数据
     */
    Map<String, Object> getInstanceFormFieldsById(String instanceId, String ...fieldIds);


    /**
     * 存储表单数据
     * @param formId 所属流程
     * @param defId 流程定义ID
     * @param instanceId 流程实例ID
     * @param formData 表单数据
     */
    void saveFormDataByInstance(String formId, String defId, String instanceId, Map<String, Object> formData);

    /**
     * 更新表单数据
     * @param formId 所属流程
     * @param defId 流程定义ID
     * @param instanceId 流程实例ID
     * @param formData 表单数据
     */
    void updateFormDataByInstance(String formId, String defId, String instanceId, Map<String, Object> formData);


}
